package org.ch02.test01.demo01;

import org.ch02.entity.Student;

import java.lang.reflect.Constructor;

/**
 *  获取某个类的Class对象 - 方法一
 *  Class.forName("包名.类名")
 *
 *  注意：此案例没有反射到底！！！
 *
 * @author ZJL
 * @date 2025-03-17
 */
public class MainTest01 {
    public static void main(String[] args) throws Exception {
        // 1.获取 Student 类的 Class 对象
        Class<?> clazz = Class.forName("org.ch02.entity.Student");

        // 在反射中，把类的相关信息封装为相关的对象
        // 2.获取类的构造方法对象
        Constructor<?> constructor = clazz.getConstructor();

        // 3.实例化对象
        Object obj = constructor.newInstance();
        if (obj instanceof Student) {
            //4.向下转换
            Student stu = (Student) obj;
            //5.调用方法
            stu.sayHello("张三");
        }


    }
}
